﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace System.ApplicationModel
{
    /// <summary>
    /// Defines methods that application extension services can optionally implement in order to respond to application lifetime events. 
    /// </summary>
    public interface IApplicationLifetimeAware
    {
        /// <summary>
        /// Called by an application immediately after the <see cref="System.Windows.Application.Exit"/> event occurs. 
        /// </summary>
        void Exited();

        /// <summary>
        /// Called by an application immediately before the <see cref="System.Windows.Application.Exit"/> event occurs. 
        /// </summary>
        void Exiting();

        /// <summary>
        /// Called by an application immediately after the <see cref="System.Windows.Application.Startup"/> event occurs. 
        /// </summary>
        void Started();

        /// <summary>
        /// Called by an application immediately before the <see cref="System.Windows.Application.Startup"/> event occurs. 
        /// </summary>
        void Starting();
    }

}
